package com.example.my;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import android.app.Fragment;

import com.google.gson.Gson;

import org.jetbrains.annotations.NotNull;

import java.io.IOException;
import java.util.Timer;
import java.util.TimerTask;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;

/**
 * A simple {@link Fragment} subclass.
 * Use the {@link Blank3Fragment#newInstance} factory method to
 * create an instance of this fragment.
 */
public class Blank3Fragment extends Fragment {

    // TODO: Rename parameter arguments, choose names that match
    // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
    private static final String ARG_PARAM1 = "param1";
    private static final String ARG_PARAM2 = "param2";

    // TODO: Rename and change types of parameters
    private String mParam1;
    private String mParam2;
    private ImageView imageView10;
    private TextView textView5;
    private ImageView imageView6;
    private TextView tvCondition;
    private TextView tvTemp;
    private TextView tvCityName;
    private TextView tvValue;
    private TextView tvWindDir;
    private TextView tvWindLevel;
    private TextView tvtips;
    private TextView textView11;
    OkHttpClient okHttpClient = new OkHttpClient();

    public Blank3Fragment() {
        // Required empty public constructor
    }

    /**
     * Use this factory method to create a new instance of
     * this fragment using the provided parameters.
     *
     * @param param1 Parameter 1.
     * @param param2 Parameter 2.
     * @return A new instance of fragment Blank3Fragment.
     */
    // TODO: Rename and change types and number of parameters
    public static Blank3Fragment newInstance(String param1, String param2) {
        Blank3Fragment fragment = new Blank3Fragment();
        Bundle args = new Bundle();
        args.putString(ARG_PARAM1, param1);
        args.putString(ARG_PARAM2, param2);
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (getArguments() != null) {
            mParam1 = getArguments().getString(ARG_PARAM1);
            mParam2 = getArguments().getString(ARG_PARAM2);
        }
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view = inflater.inflate(R.layout.fragment_blank3, container, false);
        initView(view);
        new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                RequestBody requestBody = new FormBody.Builder()
                        .add("cityId", "920")
                        .add("token", MojiDataManager.CONDITIONTOKEN)
                        .build();
                RequestBody requestBody1 = new FormBody.Builder()
                        .add("cityId", "920")
                        .add("token", MojiDataManager.ALERTTOKEN)
                        .build();
                Request request = new Request.Builder()
                        .addHeader("Authorization", "APPCODE " + MojiDataManager.APPCODE)
                        .url(MojiDataManager.CONDITIONURL)
                        .post(requestBody)
                        .build();
                Request request1 = new Request.Builder()
                        .addHeader("Authorization", "APPCODE " + MojiDataManager.APPCODE)
                        .url(MojiDataManager.ALERTURL)
                        .post(requestBody1)
                        .build();
                Call call = okHttpClient.newCall(request);
                Call call1 = okHttpClient.newCall(request1);
                call.enqueue(new Callback() {
                    @Override
                    public void onFailure(@NotNull Call call, @NotNull IOException e) {

                    }

                    @Override
                    public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
                        String result = response.body().string();
                        getActivity().runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                Gson gson = new Gson();
                                Condition condition = gson.fromJson(result, Condition.class);
                                tvCityName.setText(condition.getData().getCity().getName());
                                tvCondition.setText(condition.getData().getCondition().getCondition());
                                tvTemp.setText(condition.getData().getCondition().getTemp() + "°");
                                tvWindDir.setText("风向：" + condition.getData().getCondition().getWindDir());
                                tvWindLevel.setText(condition.getData().getCondition().getWindLevel() + "级");
                                tvValue.setText("空气质量：良");


                                tvtips.setText(condition.getData().getCondition().getTips());

//                                textView11.setText(result);
//                                Log.i("TAG", "run: " + result);
                            }
                        });

                    }
                });
                call1.enqueue(new Callback() {
                    @Override
                    public void onFailure(@NotNull Call call, @NotNull IOException e) {

                    }

                    @Override
                    public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
                        String result = response.body().string();
                        getActivity().runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
//                                Gson gson = new Gson();
//                                Alert alert = gson.fromJson(result, Alert.class);
//                                textView11.setText(result);
//                                Log.i("TAG", "run_alert: " + result);

                            }
                        });

                    }
                });

            }
        }, 0, 600000);
        return view;
    }

    private void initView(View view) {
        imageView10 = (ImageView) view.findViewById(R.id.imageView10);
        textView5 = (TextView) view.findViewById(R.id.textView5);
        imageView6 = (ImageView) view.findViewById(R.id.imageView6);
        tvCondition = (TextView) view.findViewById(R.id.tvCondition);
        tvTemp = (TextView) view.findViewById(R.id.tvTemp);
        tvCityName = (TextView) view.findViewById(R.id.tvCityName);
        tvValue = (TextView) view.findViewById(R.id.tvValue);
        tvWindDir = (TextView) view.findViewById(R.id.tvWindDir);
        tvWindLevel = (TextView) view.findViewById(R.id.tvWindLevel);
        tvtips = (TextView) view.findViewById(R.id.tvtips);
        textView11 = (TextView) view.findViewById(R.id.textView11);
    }
}